package com.yazi.mxz.person.jackson.filter;

import java.util.HashSet;
import java.util.Set;

import com.fasterxml.jackson.databind.ser.FilterProvider;
import com.fasterxml.jackson.databind.ser.impl.SimpleBeanPropertyFilter;
import com.fasterxml.jackson.databind.ser.impl.SimpleFilterProvider;
import com.yazi.mxz.common.entity.beans.StoreGoods;
import com.yazi.mxz.common.entity.beans.StoreRestock;
import com.yazi.mxz.common.entity.beans.StoreRestockGoods;

public abstract class StoreRestockGoodsFilter {

	public static FilterProvider getWithStoreRestockAndStoreGoods() {
		final Set<String> srg = new HashSet<String>();// StoreRestockGoods
		srg.add("id");
		srg.add("isChecked");
		srg.add("prevSelfCost");
		srg.add("prevStock");
		srg.add("restock");
		srg.add("selfCost");
		srg.add("storeGoods");
		srg.add("storeRestock");
		srg.add("type");
		final Set<String> sr = new HashSet<String>();// StoreRestock
		sr.add("adder");
		sr.add("addTime");
		sr.add("checker");
		sr.add("checkTime");
		sr.add("code");
		sr.add("isChecked");
		sr.add("restockId");
		sr.add("status");
		sr.add("supplier");
		final Set<String> sg = new HashSet<String>();// StoreGoods
		sg.add("barCode");
		sg.add("categoryPath");
		sg.add("name");
		sg.add("originalPrice");
		sg.add("pic");
		sg.add("price");
		sg.add("status");
		sg.add("stock");
		sg.add("stockConvert");
		sg.add("storeGoodsId");
		sg.add("title");
		sg.add("unit");
		sg.add("unitConvert");
		sg.add("updateTime");

		return new SimpleFilterProvider()
				.addFilter(StoreRestockGoods.class.getSimpleName(),
						SimpleBeanPropertyFilter.filterOutAllExcept(srg))
				.addFilter(StoreRestock.class.getSimpleName(),
						SimpleBeanPropertyFilter.filterOutAllExcept(sr))
				.addFilter(StoreGoods.class.getSimpleName(),
						SimpleBeanPropertyFilter.filterOutAllExcept(sg));
	}

}
